/*
ID: guoxu1
PROG: frac1
LANG: C++
*/
#include <fstream>
#include <list>
using namespace std;

#define cin fin
#define cout fout

struct Fraction
{
  int numerator;
  int denominator;

  Fraction( int n, int d ):
    numerator( n ), denominator( d ) {}
};

int main()
{
  ifstream fin("frac1.in");
  ofstream fout("frac1.out");

  int n = 0;
  cin >> n;

  list<Fraction> fractions;
  fractions.push_back( Fraction( 0, 1 ) );
  fractions.push_back( Fraction( 1, 1 ) );

  while( true )
  {
    bool finish = true;
    for( list<Fraction>::iterator it = fractions.begin(); it != fractions.end(); it++ )
    {
      if( it == fractions.begin() ) continue;

      Fraction& left = *(--it);
      Fraction& right = *(++it);
      Fraction next = Fraction( left.numerator + right.numerator, left.denominator + right.denominator );
      if( next.denominator > n ) continue;
      fractions.insert( it++, next );
      finish = false;
    }

    if( finish ) break;
  }

  for( list<Fraction>::iterator it = fractions.begin(); it != fractions.end(); it++ )
  {
    cout << it->numerator << "/" << it->denominator << endl;
  }
  return 0;
}
